package com.trf.member.service;

import com.trf.member.base.Result;
import com.trf.member.entity.Staff;
import com.baomidou.mybatisplus.extension.service.IService;
import com.trf.member.req.PasswordREQ;
import com.trf.member.req.StaffREQ;

import javax.annotation.Resource;

/**
 * <p>
 *  员工信息接口 服务类
 * </p>
 *
 * @author 小小唐
 * @since 2023-03-04
 */
public interface IStaffService extends IService<Staff> {

    /**
     * 定义一个分页条件查询的接口
     * @param page 页码
     * @param size 每页记录数据
     * @param req  条件查询
     * @return
     */
    Result search(Long page, Long size, StaffREQ req);

    /**
     * 定义一个新增员工的接口
     * @param staff 员工详情
     * @return
     */
    Result add(Staff staff);

    /**
     * 定义一个更新员工信息的接口
     * @param id 员工id
     * @param staff 员工详情
     * @return
     */
    Result update(int id, Staff staff);

    /**
     * 校验原密码是否正确
     * @param req 密码详情
     * @return
     */
    Result checkPassword(PasswordREQ req);

    /**
     * 更新修改后的密码
     * @param req 密码详情
     * @return
     */
    Result updatePassword(PasswordREQ req);

    /**
     * 校验登录用户名密码，登录成功后，
     * 生成 token 响应给客户端
     * @param username 用户名
     * @param password 密码
     * @return
     */
    Result login(String username,String password);

    /**
     * 登录成功后，通过 token 来获取用户信息
     * @param token 身份令牌
     * @return
     */
    Result getUserInfo(String token);
}
